From 0957ba522008bc08631ee209b4dae8d7c5a7dce0 Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Thu, 10 Sep 2015 18:46:58 -0400 Subject: [PATCH] bitmask: Optimize intersect The functions was written in a way that would possibly resize the mask twice, which is not necessary. --- gtk/gtkallocatedbitmask.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/gtk/gtkallocatedbitmask.c b/gtk/gtkallocatedbitmask.c index 6f0f1f8616..567b86cb91 100644 --- a/gtk/gtkallocatedbitmask.c +++ b/gtk/gtkallocatedbitmask.c @@ -174,11 +174,14 @@ _gtk_allocated_bitmask_intersect (GtkBitmask *mask, mask = gtk_bitmask_ensure_allocated (mask); ENSURE_ALLOCATED (other, other_allocated); - mask = gtk_allocated_bitmask_resize (mask, MIN (mask->len, other->len)); - for (i = 0; i < mask->len; i++) + for (i = 0; i < MIN (mask->len, other->len); i++) { mask->data[i] &= other->data[i]; } + for (; i < mask->len; i++) + { + mask->data[i] = 0; + } return gtk_allocated_bitmask_shrink (mask); } -- 2.30.2